#!/usr/bin/env python
import os
import django
from django.utils import timezone

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'maintenance_system.settings')
django.setup()

from spare_parts.models import SparePart, InventoryRecord, SparePartCategory, Supplier

def create_sample_spare_parts():
    """创建示例备件数据"""
    print("=== 创建示例备件 ===")
    
    # 获取或创建默认分类
    category, created = SparePartCategory.objects.get_or_create(
        name='电子元件',
        defaults={'description': '电子维修常用元件'}
    )
    
    # 获取或创建默认供应商
    supplier, created = Supplier.objects.get_or_create(
        name='通用供应商',
        defaults={
            'contact_person': '张经理',
            'phone': '13800138000',
            'email': 'supplier@example.com',
            'address': '北京市海淀区'
        }
    )
    
    # 示例备件列表
    sample_parts = [
        {'name': '电阻', 'model': '1KΩ', 'part_number': 'R001', 'unit': '个', 'unit_price': 0.1},
        {'name': '电容', 'model': '10uF', 'part_number': 'C001', 'unit': '个', 'unit_price': 0.2},
        {'name': '二极管', 'model': '1N4148', 'part_number': 'D001', 'unit': '个', 'unit_price': 0.15},
        {'name': '三极管', 'model': '2N3904', 'part_number': 'Q001', 'unit': '个', 'unit_price': 0.3},
        {'name': 'LED灯', 'model': '5mm红色', 'part_number': 'LED001', 'unit': '个', 'unit_price': 0.25},
        {'name': '集成电路', 'model': '74HC00', 'part_number': 'IC001', 'unit': '个', 'unit_price': 1.5},
        {'name': '保险丝', 'model': '250V 1A', 'part_number': 'F001', 'unit': '个', 'unit_price': 0.5},
        {'name': '开关', 'model': '按键开关', 'part_number': 'SW001', 'unit': '个', 'unit_price': 0.8},
        {'name': '连接器', 'model': 'USB Type-A', 'part_number': 'CN001', 'unit': '个', 'unit_price': 1.2},
        {'name': '散热片', 'model': '30x30mm', 'part_number': 'HS001', 'unit': '个', 'unit_price': 2.0},
    ]
    
    created_count = 0
    for part_data in sample_parts:
        part, created = SparePart.objects.get_or_create(
            part_number=part_data['part_number'],
            defaults={
                'name': part_data['name'],
                'model': part_data['model'],
                'category': category,
                'supplier': supplier,
                'unit': part_data['unit'],
                'unit_price': part_data['unit_price'],
                'min_stock': 10,
                'max_stock': 1000,
                'specifications': f'{part_data["name"]} {part_data["model"]}'
            }
        )
        if created:
            print(f"创建备件: {part.name} ({part.model})")
            created_count += 1
    
    return created_count

def add_stock_to_spare_parts():
    print("=== 为备件增加库存 ===")
    
    # 检查备件数量，如果少于10种则创建新的备件
    spare_parts_count = SparePart.objects.count()
    if spare_parts_count < 10:
        print(f"当前只有 {spare_parts_count} 种备件，需要创建 {10 - spare_parts_count} 种新备件")
        created_count = create_sample_spare_parts()
        print(f"成功创建 {created_count} 种新备件")
    
    # 获取所有备件
    spare_parts = SparePart.objects.all()
    print(f"\n找到 {spare_parts.count()} 个备件")
    
    for spare_part in spare_parts:
        print(f"\n备件: {spare_part.name} ({spare_part.model})")
        print(f"当前库存: {spare_part.current_stock} {spare_part.unit}")
        
        # 增加100个库存
        quantity_to_add = 100
        InventoryRecord.objects.create(
            spare_part=spare_part,
            operation_type='in',
            quantity=quantity_to_add,
            operator=None,  # 可以设置为系统操作
            notes=f"系统自动增加库存 {quantity_to_add} {spare_part.unit}"
        )
        
        # 重新获取备件以更新当前库存
        spare_part.refresh_from_db()
        print(f"增加后库存: {spare_part.current_stock} {spare_part.unit}")
        print(f"已增加 {quantity_to_add} {spare_part.unit} 库存")

if __name__ == "__main__":
    add_stock_to_spare_parts()
    print("\n=== 库存增加完成 ===")
